#include "../system/isr.h"
#include "../system/int80.h"

#include "../system/multitasker.h"

/*
Handler del timer tick.
*/
uint32_t IRQ0_handler(registers_t* regs) {
	/*
	me guardo el eax.
	*/
	int eax_container=regs->eax;
	/*
	Lo seteo en uno, para que el scheduler sepa que soy
	el timer tick.
	*/
	regs->eax=1;
	
	/*
	Llamo al scheduler, y me quedo con el nuevo stack.
	*/
	int ret=scheduler(regs);
	/*
	Debuelvo el eax a su valor original.
	*/
	regs->eax=eax_container;
	
	/*
	debuelvo el nuevo stack.
	*/
	return ret;
}

/*
Setea el menejador de timer tick.
*/
void init_timer_tick() {
	register_interrupt_handler(IRQ0, IRQ0_handler);
}



